--TEST--
Express requirements of a trait by abstract methods.
--FILE--
<?php
error_reporting(E_ALL);

trait Hello {
    public function sayHelloWorld() {
        echo 'Hello'.$this->getWorld();
    }
    abstract public function getWorld();
}

class MyHelloWorld {
    private $world;
    use Hello;
    public function getWorld() {
        return $this->world;
    }
    public function setWorld($val) {
        $this->world = $val;
    }
}

$o = new MyHelloWorld();
$o->setWorld(' World!');
$o->sayHelloWorld();

?>
--EXPECTF--
Hello World!